1. Technical Field
This application generally relates to managing storage pool provisioning.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more servers or host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data in the device. In order to facilitate sharing of the data on the device, additional software on the data storage systems may also be used.
RAID (Redundant Array of Independent or Inexpensive Disks) parity schemes may be utilized to provide error detection during the transfer and retrieval of data across a storage system.
In the industry there have become defined several levels of RAID systems. The first level, RAID-0, combines two or more drives to create a larger virtual disk. In a dual drive RAID-0 system one disk contains the low numbered sectors or blocks and the other disk contains the high numbered sectors or blocks, forming one complete storage space. RAID-0 systems generally interleave the sectors of the virtual disk across the component drives, thereby improving the bandwidth of the combined virtual disk. Interleaving the data in that fashion is referred to as striping. RAID-0 systems provide no redundancy of data, so if a drive fails or data becomes corrupted, no recovery is possible short of backups made prior to the failure.
RAID-1 systems include one or more disks that provide redundancy of the virtual disk. One disk is required to contain the data of the virtual disk, as if it were the only disk of the array. One or more additional disks contain the same data as the first disk, providing a “mirror” of the data of the virtual disk. A RAID-1 system will contain at least two disks, the virtual disk being the size of the smallest of the component disks. A disadvantage of RAID-1 systems is that a write operation must be performed for each mirror disk, reducing the bandwidth of the overall array. In a dual drive RAID-1 system, the first disk and the second disk contain the same sectors or blocks, each disk holding exactly the same data.
RAID-2 systems provide for error correction through hamming codes. The component drives each contain a particular bit of a word, or an error correction bit of that word. RAID-2 systems automatically and transparently detect and correct single-bit defects, or single drive failures, while the array is running. Although RAID-2 systems improve the reliability of the array over other RAID types, they are less popular than some other systems due to the expense of the additional drives, and redundant onboard hardware error correction.
RAID-4 systems are similar to RAID-0 systems, in that data is striped over multiple drives. For example, the storage spaces of two disks are added together in interleaved fashion, while a third disk contains the parity of the first two disks. RAID-4 systems are unique in that they include an additional disk containing parity. For each byte of data at the same position on the striped drives, parity is computed over the bytes of all the drives and stored to the parity disk. The XOR operation is used to compute parity, providing a fast and symmetric operation that can regenerate the data of a single drive, given that the data of the remaining drives remains intact. RAID-3 systems are essentially RAID-4 systems with the data striped at byte boundaries, and for that reason RAID-3 systems are generally slower than RAID-4 systems in most applications. RAID-4 and RAID-3 systems therefore are useful to provide virtual disks with redundancy, and additionally to provide large virtual drives, both with only one additional disk drive for the parity information. They have the disadvantage that the data throughput is limited by the throughput of the drive containing the parity information, which must be accessed for every read and write operation to the array.
RAID-5 systems are similar to RAID-4 systems, with the difference that the parity information is striped over all the disks with the data. For example, first, second, and third disks may each contain data and parity in interleaved fashion. Distributing the parity data generally increases the throughput of the array as compared to a RAID-4 system. RAID-5 systems may continue to operate though one of the disks has failed. RAID-6 systems are like RAID-5 systems, except that dual parity is kept to provide for normal operation if up to the failure of two drives.
Combinations of RAID systems are also possible. For example, a four disk RAID 1+0 system provides a concatenated file system that is also redundant. The first and second disks are mirrored, as are the third and fourth disks. The combination of the mirrored sets forms a storage space that is twice the size of one individual drive, assuming that all four are of equal size. Many other combinations of RAID systems are possible.
In at least some cases, when a logical volume is configured so that its data is written across multiple disk drives in the striping technique, the logical volume is operating in RAID-0 mode. Alternatively, if the logical volume's parity information is stored on one disk drive and its data is striped across multiple other disk drives, the logical volume is operating in RAID-3 mode. If both data and parity information are striped across multiple disk drives, the logical volume is operating in RAID-5 mode.
Different tasks may be performed in connection with a data storage system. For example, a customer may perform data storage configuration and provisioning tasks. Such tasks may include, for example, configuring and provisioning storage. Tasks may include allocating storage, specifying the logical and/or physical devices used for the storage allocation, specifying whether the data should be replicated, the particular RAID level, and the like. With such options in connection with performing configuration and provisioning tasks, a customer may not have the appropriate level of sophistication and knowledge needed.
Certain software applications use rule processing techniques, e.g., to direct data to various locations. As an example, Microsoft Outlook email processing software, manufactured by Microsoft Corporation of Redmond Wash., provides an email client program that can use rule processing to direct the placement of email messages within a user's various mailbox folders. A rule mechanism is provided to allow a user to establish rules that can, for instance, select an incoming email message, based on a source address, and deposit that message into a specific mailbox folder. Rule applicability can be conditioned on things such as specific words that might appear in an email message, or on destination or source email addresses. A user may also specify exceptions that define criteria for not applying a rule to routing of email messages. Rules in this system can also specify an action to be taken on the email message, such as, for example, deleting the email and to stop processing other rules once the rule is complete.